package br.com.vertigo.sgci.session;

import br.com.vertigo.sgci.entity.*;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.framework.EntityQuery;
import java.util.List;
import java.util.Arrays;

@SuppressWarnings({ "serial", "unchecked" })
@Name("tipoitemList")
public class TipoitemList extends EntityQuery {

	private static final String[] RESTRICTIONS = { "lower(tipoitem.nome) like concat(lower(#{tipoitemList.tipoitem.nome}),'%')" , };

	private Tipoitem tipoitem = new Tipoitem();

	@Override
	public String getEjbql() {
		return "select tipoitem from Tipoitem tipoitem" + orderna();
	}
	
	public String orderna(){
		String inicial = " order by tipoitem.nome asc";
		if(getOrder() != null){
			inicial = "";
		}
		if(this.tipoitem.getNome() != null && !this.tipoitem.getNome().equals("")){
			inicial = "";
		}
		return inicial;
	}
	
	public boolean verificaDependencias(Tipoitem tipoDespesa) {
		return !getEntityManager().createQuery("select itemrdv from Itemrdv itemrdv where itemrdv.projetotipoitem.tipoitem.idTipoitem = " + tipoDespesa.getIdTipoitem()).getResultList().isEmpty();
	}

	@Override
	public Integer getMaxResults() {
		return 25;
	}

	public Tipoitem getTipoitem() {
		return tipoitem;
	}

	@Override
	public List<String> getRestrictions() {
		return Arrays.asList(RESTRICTIONS);
	}

}
